#include <string>
#include <iostream>
using namespace std;
template <class T1, class T2>
class pair
{
public:
    T1 key;
    T2 value;
    pair(T1 k, T2 v) : key(k), value(v) {}
    void show();
    bool operator<(const pair<T1, T2> &p) const;
};
bool pair<class T1, class T2>::operator<(const pair<T1, T2> &p) const
{
    return key < p.key;
}
void pair<class T1, class T2>::show()
{
    cout << key << " " << value << endl;
}
int main()
{
    pair<string, int> student("Tom", 19);
    cout << student.key << endl;
    //student.show();
    return 0;
}